package com.wcj.hash.hashmap;

import java.util.HashMap;
import java.util.Map;

/**
 * 给定两个字符串 s 和 t ，判断它们是否是同构的。
 *
 * 如果 s 中的字符可以按某种映射关系替换得到 t ，那么这两个字符串是同构的。
 *
 * 每个出现的字符都应当映射到另一个字符，同时不改变字符的顺序。
 * 不同字符不能映射到同一个字符上，相同字符只能映射到同一个字符上，字符可以映射到自己本身。
 */
public class 同构字符串 {


    public boolean isIsomorphic(String s, String t) {
        Map<Character,Character> map = new HashMap<>();
        Map<Character,Character> map2 = new HashMap<>();
        for (int i = 0; i < s.length(); i++){
            char c = s.charAt(i);
            char c1 = t.charAt(i);
            if ((map.containsKey(c) && map.get(c) != c1) || (map2.containsKey(c1) && map2.get(c1)!=c)){
               return false;
            }
            map.put(c,c1);
            map2.put(c1,c);
        }
        return true;
    }


}
